package cn.edu.sgu.www.mhxysy.service.xingyin;

import cn.edu.sgu.www.mhxysy.dto.xingyin.XingyinCategoryDTO;
import cn.edu.sgu.www.mhxysy.entity.xingyin.XingyinCategory;
import cn.edu.sgu.www.mhxysy.pager.xingyin.XingyinCategoryPager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface XingyinCategoryService {

    /**
     * 上传图片
     * @param file MultipartFile
     * @return String 图片回显的URL
     * @throws IOException UploadUtils.upload()抛出的异常
     */
    String upload(MultipartFile file) throws IOException;

    /**
     * 添加星印类型
     * @param xingyinCategoryDTO 星印类型信息
     */
    void insert(XingyinCategoryDTO xingyinCategoryDTO);

    /**
     * 通过ID修改星印类型信息
     * @param xingyinCategoryDTO 星印类型信息
     */
    void updateById(XingyinCategoryDTO xingyinCategoryDTO);

    /**
     * 通过ID修改星印图片
     * @param id 星印类型ID
     * @param image 图片地址
     */
    void updateImageById(Integer id, String image);

    /**
     * 查询全部星印类型
     * @return List<XingyinCategory>
     */
    List<XingyinCategory> selectAll();

    /**
     * 通过ID查询星印类型信息
     * @param id 星印类型ID
     * @return XingyinCategory
     */
    XingyinCategory selectById(Integer id);

    /**
     * 查询星印类型列表
     * @param type 星印类型
     * @return List<XingyinCategory>
     */
    List<XingyinCategory> selectByType(Integer type);

    /**
     * 分页查询星印类型列表
     * @param pager 分页参数
     * @return Page<XingyinCategory>
     */
    Page<XingyinCategory> selectByPage(XingyinCategoryPager pager);
}